home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 1 / LSD Compendium Deluxe 1.iso / a / programming / assembly / dmsii.s.lha / Include / HandleWB next >
Encoding:
Text File  |  1992-12-21  |  1.9 KB  |  69 lines

  1. ************************************************************************
  2. ******************* HandleWB Rev 2.  Made 20/06-93 By Newtec ***********
  3. ************************************************************************
  4. ************************************************************************
  5. ******************* Functions:                               ***********
  6. *******************                                          ***********
  7. ******************* InitWB()                                 ***********
  8. ******************* ExitWB(CLIReturnCode)(d0)                ***********
  9. ************************************************************************
  10.  
  11.         ;incdir    'Code:include/'
  12.         ;include 'HandleWB'
  13.         ;
  14.         ;move.l    sp,ExitStack
  15.         ;bsr    InitWB
  16.         ;...
  17.         ;clr.l    d0
  18.         ;bra    ExitWB
  19.  
  20. ;------------------------------------------------------------------
  21. InitWB:        ;Stack MUST be set in the main loop!
  22.         tst.l    ExitStack
  23.         bne.b    .StackOK
  24.         move.b    $dff006,$dff180
  25.         btst    #6,$bfe001
  26.         bne.b    InitWB
  27.         rts
  28.  
  29. .StackOK:    move.l    4.w,a6
  30.         move.l    276(a6),a4    ;Exec->ThisTask
  31.         tst.l    $ac(a4)        ;pr_cli
  32.         bne.b    .CLI        ;From CLI
  33.         lea.l    $5c(a4),a0    ;WB message
  34. .GetMsg:    jsr    -372(a6)    ;GetMsg
  35.         tst.l    d0
  36.         bne.b    .FromWB
  37.         lea.l    CLI_WB(pc),a0
  38.         move.b    #2,(a0)
  39.         bra.b    .CLI        ;Started from ASMONE!
  40. .FromWB:    move.l    d0,WBMsg
  41.         lea.l    CLI_WB(pc),a0
  42.         move.b    #1,(a0)
  43. .CLI:        rts
  44. ;------------------------------------------------------------------
  45. ExitWB:        move.l    ExitStack(pc),sp
  46.         tst.b    CLI_WB
  47.         beq.b    .ExitCLI
  48.         cmp.b    #2,CLI_WB
  49.         beq    .Exit
  50.         move.l    4.w,a6
  51.         move.l    WBMsg(pc),a1
  52.         jsr    -378(a6)    ;ReplyMsg
  53.         clr.l    d0
  54. .Exit:        rts
  55. .ExitCLI:    move.l    d0,-(sp)    ;Save Returncode
  56.         move.l    4.w,a6
  57.         lea.l    .DosName(pc),a1
  58.         clr.l    d0
  59.         jsr    -552(a6)    ;OpenLib
  60.         move.l    d0,a6
  61.         move.l    (sp)+,d1    ;ReturnCode
  62.         jmp    -144(a6)    ;Xit
  63. ;------------------------------------------------------------------
  64. .DosName:    dc.b    'dos.library',0
  65. CLI_WB:        dc.b    0    ;0=Cli, 1=WB, 2=Asmone
  66.         even
  67. ExitStack:    dc.l    0
  68. WBMsg:        dc.l    0
  69.